For many multimedia applications, not only is processor speed important, but also input/output bandwidth is a critical factor that limits applications on personal computers. To address this limitation, the IEEE 1394 standard enables high-performance multimedia connections with camcorders, televisions, stereos, CD changers, set-top boxes, mixing consoles and music keyboards, as well as traditional personal computer devices. Also known as the "FireWire" standard, IEEE 1394 provides a bus interface standard for portable and desktop computing environments. The IEEE 1394 Standard serves as an important linking technology that bridges the consumer and computer markets and describes a serial bus driven by an advanced communication protocol. The IEEE 1394 serial bus is designed for low system cost, while providing the data transfer rates needed for high-performance peripheral buses.
Developed by the Institute of Electrical and Electronics Engineers (IEEE) and its list of member computer companies, the IEEE 1394 standard is a serial bus interface that enables low-cost, high-speed digital data transfer and communication. Transfer speeds between devices can reach up to 400 megabits per second (mbps) via both asynchronous and isochronous data transfer modes. The IEEE 1394 Standard interface lends itself to video applications because it operates an isochronous time-slice system. For example, if the system was configured to output one frame per 1/15 seconds, at least one frame will exist in every packet that is sent out. This results in smooth looking video. For that reason, the IEEE 1394 Standard interface is highly compatible with technologies like asynchronous transfer mode (ATM) which also operates in an isochronous mode.
Benefits of the IEEE 1394 Standard are a real-time transmission of data that provides the benefit of an ideal interconnect for multimedia applications. Using a small, durable and flexible cable and cable connectors, the IEEE 1394 Standard generates cost savings and eliminates certain cable requirements. The IEEE 1394 Standard provides universal input/output interconnects that integrate input/output ports while consolidating printed circuit board space. Moreover, the IEEE 1394 Standard provides peer-to-peer communication structure that permits peripherals to communicate directly with each other without burdening the host unit.
The IEEE 1394 Standard provides a high speed serial bus that uses packetized data that includes a header. The header includes routing information. In addition, the packetized data includes payload data. Physical characteristics of the media are not necessarily designed for a long transmission distance. The IEEE 1394 Standard is designed for short distances such as local area networks that operate on a desktop bus. The distances are often longer than simply the desktop, but the IEEE 1394 Standard is not intended to be used for local area network operations. In essence, therefore, the IEEE 1394 Standard provides a high speed interconnect to replace serial buses and parallel buses for accessing devices such as workstations, home computers, televisions, VCRs, and camcorders with various media types such as audio, video and text.
With existing IEEE 1394 Standard interface devices, there is the problem of determining how to arbitrate and schedule the various direct memory access (DMA) channels for optimal performance. Scheduling problems occur that prevent rapid DMA channel assignment in the data transfer to the IEEE 1394 Standard bus. Such a limitation, however, is not unique to the IEEE 1394 Standard. In many similar instances, there is the problem of identifying the most optimal solution of scheduling DMA activity. Conventional methods of performing these priority schemes, whereby any DMA channel may run are less than optimal. If a DMA channel has data that is to go to the personal computer and that it is of the highest priority, that DMA channel may be the one that receives the requested access, or there may other channels that receive the requested access before the highest priority channel.
For example, many PCI-interface devices that IEEE 1394 Standard and other systems use employ a "round robin" technique. Such a technique takes each channel in a sequence of 0 to N, where there are [N+1] DMA channels to service, each one in sequence. As a result, each DMA channel receives a time slice in sequence. The problem with the round robin technique is that the highest priority channel may not be the channel that is currently active on the PCI-interface device. With the higher speed IEEE 1394 Standard interface, the data that is currently in a FIFO can be drained or filled out of the FIFO very rapidly.
The scheduling and arbitrating problem of the IEEE 1394 Standard type PCI-interface devices is particularly important when working on a priority-based arbitrary-sequence that may be on a channel that is doing useful work. Doing this work, however, may not satisfy the currently active channel. If the interface device is not satisfying the currently active channel in real-time, there may be an underrun or overflow data condition in the one or more of FIFO devices supporting the PCI-interface. This may cause the currently active channel to fail in the off state or create an error condition. Such an error condition will improperly and adversely affect communication flow in the IEEE 1394 Standard or similar communications bus.
In such a round robin or similar technique, there is also the problem of delaying the channel service as the transfer device selects among the sequenced channels. Because of the delay that sequencing generates, real-time servicing of a channel often does not occur. This slows communication flow and can limit the benefits of employing the IEEE 1394 Standard.